package middleware

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"myplatform/handler"
	"myplatform/libs/errcode"
	"myplatform/libs/token"
)

func AuthMiddleware() gin.HandlerFunc {
	return func(c *gin.Context) {
		fmt.Println("进行token验证...")
		//认证成功做跳转
		c.Next()
	}
}

// 只要是HandlerFunc类型的函数都可以作为中间件
func AuthToken(c *gin.Context) {
	fmt.Println("进行token验证...")
	if ctx, err := token.ValidateToken(c); err != nil {
		fmt.Println(err)
		handler.SendRsp(c, errcode.ValidateTokenError, gin.H{"error": err.Error()})
		c.Abort()
		return
	} else {
		// 将解析后的 token 上下文保存到 gin.Context 中，以便后续处理函数使用
		c.Set("user", ctx)
	}
	c.Next()
}
